package Test.优先队列;

/**
 * @ClassName a
 * @since: 2023/9/5 10:20
 * @auth: kirito
 * @description:
 * 在上述示例中，我们创建了一个PriorityQueue对象，并向队列中添加一些整数。
 * 由于默认情况下，PriorityQueue按自然顺序进行排序（较小的元素具有较高的优先级），
 * 因此队列中的元素被重新排序。然后，我们使用poll()方法按优先级移除并打印队列中的元素。
 *
 * 请注意，PriorityQueue不保证相等元素的顺序，因此如果您需要确切的顺序，请使用其他数据结构。
 **/
import java.util.PriorityQueue;

public class PriorityQueueExample1 {
    public static void main(String[] args) {
        // 创建一个优先级队列，默认按自然顺序排序
        PriorityQueue<Integer> pq = new PriorityQueue<>();

        // 添加元素到队列
        pq.offer(5);
        pq.offer(2);
        pq.offer(8);
        pq.offer(1);

        // 打印队列中的元素（无序）
        System.out.println("队列中的元素：" + pq);

        // 按优先级顺序移除并返回队列中的元素
        while (!pq.isEmpty()) {
            System.out.println("移除的元素：" + pq.poll());
        }
/*        队列中的元素：[1, 2, 8, 5]
        移除的元素：1
        移除的元素：2
        移除的元素：5
        移除的元素：8*/
    }
}